package com.google.code.teamtools.domain;

/**
 * Interface for a resource. A resource is anyone or any thing that may be
 * assigned to a {@link IProject}.
 * 
 * @author David Kuhn
 */
public interface IResource extends IEntity
{
    /**
     * Returns the name of the resource.
     * 
     * @return the resource name
     */
    String getName();
    
    /** 
     * Returns the owner of this resource, or null if resource is unowned.
     * 
     * @return the resource owner or null
     */
    IResourceOwner getOwner();

    /**
     * Sets the name of the resource.
     * 
     * @param name the resource name
     */
    void setName(String name);
    
    /**
     * Sets the resource owner for this resource.
     * 
     * @param owner the new owner to set
     */
    void setOwner(IResourceOwner owner);
}
